package com.brain.fina.manager;

import com.brain.come.dto.DocumentoVentaDto;
import com.brain.come.manager.DocumentoVentaManager;
import com.brain.core.common.ExportarExcelFinanzas;
import com.brain.core.common.UtilCore;
import com.brain.core.configuracion.WebServletContextListener;
import com.brain.core.manager.*;
import com.brain.core.exception.DAOException;
import com.brain.core.hibernate.dao.DAOGenerico;
import com.brain.core.view.mbean.SessionMBean;
import com.brain.fina.dto.FinanciamientoLetraDto;
import com.brain.fina.view.util.ConstantesFina;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.faces.model.SelectItem;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

/**
 * @author Greip Company
 * @since 09/01/2014
 * @version 1.0
 */
@Service
public class FinanciamientoManager extends ComunManager<FinanciamientoLetraDto> implements Serializable {

    /**
     * Guarda las acciones del sistema en un archivo de texto plano
     *
     * @since 09/01/2014
     */
    private static Logger logger = Logger.getLogger(FinanciamientoManager.class);
    /**
     * Identificador de la entidad Finanzas
     *
     * @since 09/01/2014
     */
    private Long idEntidad = 275L;
    /**
     * Objeto que permite el acceso a la capa de datos
     *
     * @since 09/01/2014
     */
    @Resource
    private DAOGenerico<FinanciamientoLetraDto> springHibernateDao;
    /**
     * Objeto que permite acceder a la clase utilitaria de datos
     *
     * @since 09/01/2014
     */
    @Resource
    private RecursosManager recursosManager;
    /**
     * Ruta que muestra la pagina principal de financiamientoLetra
     *
     * @since 09/01/2014
     */
    private final String url = "/pages/fina/financiamientoLetra/financiamientoLetra.xhtml";
    /**
     * Ruta que muestra la pagina de Listado de financiamientoLetra
     *
     * @since 09/01/2014
     */
    private final String urlLista = "/pages/fina/financiamientoLetra/listaFinanciamientoLetra.xhtml";

    /**
     * Metodo que obtiene todos los datos de la entidad
     *
     * @since 09/01/2014
     * @return retorna una lista con todos los datos de la entidad
     */
    public List<FinanciamientoLetraDto> obtenerTodos() throws DAOException {
        return springHibernateDao.listarTodosDtos(FinanciamientoLetraDto.class);
    }

    /**
     * Metodo que obtiene todos los datos de la entidad coincidentes con el filtro
     *
     * @since 09/01/2014
     * @param filtros es el objeto de la Interfaz Map , que envía un map con 2
     * parámetros
     * @return retorna una lista con todos los datos de la entidad coincidentes
     * con el filtro
     */
    public List<FinanciamientoLetraDto> obtenerConFiltro(Map<String, Object> filtros) throws DAOException {
        return springHibernateDao.obtenerDtosConFiltros(FinanciamientoLetraDto.class, filtros);
    }

    /**
     * Metodo que obtiene todos los datos coincidentes con el filtro , además
     * permite manejar el orden de los datos
     *
     * @since 09/01/2014
     * @param filtros es el objeto de la Interfaz Map , que envía un mapa con 2
     * parámetros
     * @param orden es el objeto de la Interfaz Map , que envía un mapa con 2
     * parámetros
     * @return retorna una lista con todos los datos de la entidad coincidentes
     * con el filtro ordenado manualmente
     */
    public List<FinanciamientoLetraDto> obtenerConFiltroConOrden(Map<String, Object> filtros, Map<String, String> orden) throws DAOException {
        return springHibernateDao.obtenerDtosConFiltrosConOrden(FinanciamientoLetraDto.class, filtros, orden);
    }
/**
     * Metodo que devuelve un Dto
     *
     * @since 09/01/2014
     * @param id identificador o codigo en la tabla a obtener
     * @return retorna un Dto lleno de datos en caso que encuentre coincidencias
     * con el parámetro enviado
     */
    public FinanciamientoLetraDto obtenerPorId(Long id) throws DAOException {
        return springHibernateDao.obtenerDtoPorId(FinanciamientoLetraDto.class, id);
    }

    /**
     * Metodo que devuelve una lista de valores de la Clase
     * FinanciamientoLetraDto
     *
     * @since 09/01/2014
     * @param financiamientoLetraDto objeto de la Clase FinanciamientoLetraDto
     * que se llenará según la necesidad
     * @return retorna un Dto lleno de datos en caso que encuentre coincidencias
     * con el parámetro enviado
     */
    public List<FinanciamientoLetraDto> obtenerFinanciamientos(FinanciamientoLetraDto financiamientoLetraDto) throws DAOException {
        SessionMBean sessionMBean = (SessionMBean) WebServletContextListener.getApplicationContext().getBean("sessionMBean");
        String query = "select e from FinanciamientoLetraDto as e where e.documentoVentaDto.organizacionDto.id = ?  ";
        List<Object> listaParametros = new ArrayList<Object>();
        listaParametros.add(sessionMBean.getOrganizacionDto().getId());
        if (financiamientoLetraDto.getId() != null && !financiamientoLetraDto.getId().equals(0L)) {
            query += " and e.id = ?";
            listaParametros.add(financiamientoLetraDto.getId());
        } else {
            if (financiamientoLetraDto.getGirado() != null && financiamientoLetraDto.getGirado().length() > 0) {
                query += " and e.girado like '%" + financiamientoLetraDto.getGirado().toUpperCase() + "%'";
            }
            if (financiamientoLetraDto.getEstado() != null && !financiamientoLetraDto.getEstado().equals(ConstantesFina.ValoresConstantes.FINA_LETRA_COD_ESTADO_TODOS)) {
                query += " and e.estado = ?";
                listaParametros.add(financiamientoLetraDto.getEstado());
            }
            if (financiamientoLetraDto.getFechaInicio() != null && financiamientoLetraDto.getFechaFin() != null) {

                query += " and e.fechaCreacion between ? and ?";
                Calendar c = Calendar.getInstance();
                c.setTime(financiamientoLetraDto.getFechaInicio());
                c.set(Calendar.HOUR, 0);
                c.set(Calendar.MINUTE, 0);
                c.set(Calendar.SECOND, 0);
                listaParametros.add(c.getTime());
                c.setTime(financiamientoLetraDto.getFechaFin());
                c.set(Calendar.HOUR, 23);
                c.set(Calendar.MINUTE, 59);
                c.set(Calendar.SECOND, 59);
                listaParametros.add(c.getTime());
            }
        }
        query += " order by e.fechaCreacion desc";

        return springHibernateDao.ejecutarQuery(query, listaParametros);
    }
 /**
     * Metodo que permite llenar un arreglo de Items
     *
     * @since 09/01/2014
     * @return retorna un arreglo de items con codigo y descripcion
     */
    public SelectItem[] siTiposFinanciamientoLetraTodos() {
        SelectItem[] si = new SelectItem[4];
        si[0] = new SelectItem(ConstantesFina.ValoresConstantes.FINA_LETRA_COD_ESTADO_TODOS, ConstantesFina.ValoresConstantes.FINA_LETRA_DESC_ESTADO_TODOS);
        si[1] = new SelectItem(ConstantesFina.ValoresConstantes.FINA_LETRA_COD_ESTADO_ELABORACION, ConstantesFina.ValoresConstantes.FINA_LETRA_DESC_ESTADO_ELABORACION);
        si[2] = new SelectItem(ConstantesFina.ValoresConstantes.FINA_LETRA_COD_ESTADO_ANULADO, ConstantesFina.ValoresConstantes.FINA_LETRA_DESC_ESTADO_ANULADO);
        si[3] = new SelectItem(ConstantesFina.ValoresConstantes.FINA_LETRA_COD_ESTADO_CONFIRMADO, ConstantesFina.ValoresConstantes.FINA_LETRA_DESC_ESTADO_CONFIRMADO);
        return si;
    }

   
    /**
     * Metodo que permite buscar documentos de venta a partir de un filtro
     *
     * @param filtro Nro de documento que se buscará
     * @since 09/01/2014
     * @return retorna una lista de documentos llena
     */
    public List<DocumentoVentaDto> listaDocumentosVentas(final String filtro) {
        DocumentoVentaManager dvManager = (DocumentoVentaManager) WebServletContextListener.getApplicationContext().getBean("documentoVentaManager");
        List<DocumentoVentaDto> listaDV = null;
        try {
            listaDV = dvManager.obtenerDocumentosVentaConfirmados(filtro);
        } catch (DAOException ex) {
            logger.error(ex);
            listaDV = new ArrayList<DocumentoVentaDto>();
        }
        return listaDV;
    }
 /**
     * Metodo que permite exportar a excel informacion de la Tabla
     * Financiamiento de Letra
     *
     * @since 09/01/2014
     * @param exp objeto de almacenará que campos se exportarán
     * @param selectedFLs arreglo de la clase FinanciamientoLetraDto donde se
     * almacenarán los valores a exportar
     *
     */
    public void generarExcelSeleccionados(ExportarExcelFinanzas.FinanciamientoLetra exp, FinanciamientoLetraDto[] selectedFLs) {
        StringBuilder strCabecera = this.obtenerCabeceraExcel(exp);
        List<FinanciamientoLetraDto> lst = Arrays.asList(selectedFLs);
        List lstCuerpo = this.obtenerCuerpoExcel(exp, lst);
        String nombreArchivo = "FINANCIAMIENTOS_LETRA_" + UtilCore.Fecha.obtenerFechaHoraActual().replace(':', '_') + ".xls";
        this.recursosManager.generarExcel(strCabecera.toString(), lstCuerpo, nombreArchivo);
        this.recursosManager.viewArchivo(nombreArchivo);
    }

   /**
     * Metodo que permite exportar a excel informacion de la Tabla
     * Financiamiento de Letra
     *
     * @since 09/01/2014
     * @param exp objeto de almacenará que campos se exportarán
     * @param selectedFLs lista de la clase FinanciamientoLetraDto donde se
     * almacenarán los valores a exportar
     */
    public void generarExcelPorTabla(ExportarExcelFinanzas.FinanciamientoLetra exp, List<FinanciamientoLetraDto> lstFL) {
        StringBuilder strCabecera = this.obtenerCabeceraExcel(exp);
        List lstCuerpo = this.obtenerCuerpoExcel(exp, lstFL);
        String nombreArchivo = "FINANCIAMIENTOS_LETRA_" + UtilCore.Fecha.obtenerFechaHoraActual().replace(':', '_') + ".xls";
        this.recursosManager.generarExcel(strCabecera.toString(), lstCuerpo, nombreArchivo);
        this.recursosManager.viewArchivo(nombreArchivo);
    }

     /**
     * Metodo que , crea el cuerpo del documento de excel
     *
     * @since 09/01/2014
     * @param exp objeto que contiene los valores seleccionados
     * @param selectedFLs lista de la clase FinanciamientoLetraDto que contiene
     * los valores a exportar
     * @return return lstFilas devuelve una lista con los datos seteados
     */
    private List obtenerCuerpoExcel(ExportarExcelFinanzas.FinanciamientoLetra exp, List<FinanciamientoLetraDto> lst) {
        StringBuilder strCuerpo;
        List lstFilas = new ArrayList();
        for (FinanciamientoLetraDto x : lst) {
            strCuerpo = new StringBuilder();
            if (exp.getId()) {
                strCuerpo.append(x.getId()).append("|");
            }
            if (exp.getEstado()) {
                if (x.getEstado() != null) {
                    strCuerpo.append(x.getEstadoTexto()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getDocumentoVenta()) {
                if (x.getDocumentoVentaDto() != null) {
                    strCuerpo.append(x.getDocumentoVentaDto().getId()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getLugarGiro()) {
                if (x.getLugarGiro() != null) {
                    strCuerpo.append(x.getLugarGiro()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getFechaGiro()) {
                if (x.getFechaGiro() != null) {
                    strCuerpo.append(x.getFechaGiro()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getMoneda()) {
                if (x.getMonedaDto() != null) {
                    strCuerpo.append(x.getMonedaDto().getDescripcion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getMotivo()) {
                if (x.getMotivo() != null) {
                    strCuerpo.append(x.getMotivo()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getBanco()) {
                if (x.getBanco() != null) {
                    strCuerpo.append(x.getBanco()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getOficina()) {
                if (x.getOficina() != null) {
                    strCuerpo.append(x.getOficina()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getNumeroCuenta()) {
                if (x.getNumeroCuenta() != null) {
                    strCuerpo.append(x.getNumeroCuenta()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getDc()) {
                if (x.getDc() != null) {
                    strCuerpo.append(x.getDc()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getFiador()) {
                if (x.getFiador() != null) {
                    strCuerpo.append(x.getFiador()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getAvalFiador()) {
                if (x.getAvalFiador() != null) {
                    strCuerpo.append(x.getAvalFiador()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getDomicilioFiador()) {
                if (x.getDomicilioFiador() != null) {
                    strCuerpo.append(x.getDomicilioFiador()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getRepresentanteFiador()) {
                if (x.getRepresentanteFiador() != null) {
                    strCuerpo.append(x.getRepresentanteFiador()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTelefonoFiador()) {
                if (x.getTelefonoFiador() != null) {
                    strCuerpo.append(x.getTelefonoFiador()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getDoiFiador()) {
                if (x.getDoiFiador() != null) {
                    strCuerpo.append(x.getDoiFiador()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getGirado()) {
                if (x.getGirado() != null) {
                    strCuerpo.append(x.getGirado()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getDomicilioGirado()) {
                if (x.getDomicilioGirado() != null) {
                    strCuerpo.append(x.getDomicilioGirado()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getDoiGirado()) {
                if (x.getDoiGirado() != null) {
                    strCuerpo.append(x.getDoiGirado()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTelefonoGirado()) {
                if (x.getTelefonoGirado() != null) {
                    strCuerpo.append(x.getTelefonoGirado()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getPrecioBien()) {
                if (x.getPrecioBien() != null) {
                    strCuerpo.append(x.getPrecioBien()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getInicial()) {
                if (x.getInicial() != null) {
                    strCuerpo.append(x.getInicial()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getSaldoFinanciar()) {
                if (x.getSaldoFinanciar() != null) {
                    strCuerpo.append(x.getSaldoFinanciar()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getPeriodoGracia()) {
                if (x.getPeriodoGracia() != null) {
                    strCuerpo.append(x.getPeriodoGracia()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getNuevoSaldoFinanciar()) {
                if (x.getNuevoSaldoFinanciar() != null) {
                    strCuerpo.append(x.getNuevoSaldoFinanciar()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getIntervaloDiasCuota()) {
                if (x.getIntervaloDiasCuota() != null) {
                    strCuerpo.append(x.getIntervaloDiasCuota()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTea()) {
                if (x.getTea() != null) {
                    strCuerpo.append(x.getTea()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTem()) {
                if (x.getTem() != null) {
                    strCuerpo.append(x.getTem()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTeEspecial()) {
                if (x.getTeEspecial() != null) {
                    strCuerpo.append(x.getTeEspecial()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getNumeroPeriodosLetra()) {
                if (x.getNumeroPeriodosLetra() != null) {
                    strCuerpo.append(x.getNumeroPeriodosLetra()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getCuotaIgual()) {
                if (x.getCuotaIgual() != null) {
                    strCuerpo.append(x.getCuotaIgual()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTotalInteres()) {
                if (x.getTotalInteres() != null) {
                    strCuerpo.append(x.getTotalInteres()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getImpuestoVenta()) {
                if (x.getImpuestoVenta() != null) {
                    strCuerpo.append(x.getImpuestoVenta()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getMontoImpuestoVenta()) {
                if (x.getMontoImpuestoVenta() != null) {
                    strCuerpo.append(x.getMontoImpuestoVenta()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getPrintCuotasIguales()) {
                if (x.getPrintCuotasIguales() != null) {
                    strCuerpo.append(x.getPrintCuotasIguales()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getEsAgenteRetencion()) {
                if (x.getEsAgenteRetencion() != null) {
                    strCuerpo.append(x.getEsAgenteRetencion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getPorcentajeRetencion()) {
                if (x.getPorcentajeRetencion() != null) {
                    strCuerpo.append(x.getPorcentajeRetencion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getMontoRetencion()) {
                if (x.getMontoRetencion() != null) {
                    strCuerpo.append(x.getMontoRetencion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getSaldoRetencion()) {
                if (x.getSaldoRetencion() != null) {
                    strCuerpo.append(x.getSaldoRetencion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getUsuarioCreacion()) {
                if (x.getUsuarioCreacionDto() != null) {
                    strCuerpo.append(x.getUsuarioCreacionDto().getDescripcion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getFechaCreacion()) {
                if (x.getFechaCreacion() != null) {
                    strCuerpo.append(x.getFechaCreacion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getTerminalCreacion()) {
                if (x.getTerminalCreacion() != null) {
                    strCuerpo.append(x.getTerminalCreacion()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            if (exp.getComentario()) {
                if (x.getComentario() != null) {
                    strCuerpo.append(x.getComentario()).append("|");
                } else {
                    strCuerpo.append("-").append("|");
                }
            }
            lstFilas.add(strCuerpo.toString());
        }
        return lstFilas;
    }

   /**
     * Metodo que crea la cabezera del documento de excel
     *
     * @since 09/01/2014
     * @param exp objeto que indica que columnas del documento serán rellenadas
     * @return devuelve una cadena construida respectivamente
     */
    private StringBuilder obtenerCabeceraExcel(ExportarExcelFinanzas.FinanciamientoLetra exp) {
        StringBuilder strCabecera = new StringBuilder();
        if (exp.getId()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("general.label.id")).append("|");
        }
        if (exp.getEstado()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("general.label.estado")).append("|");
        }
        if (exp.getDocumentoVenta()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.documento.venta")).append("|");
        }
        if (exp.getLugarGiro()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.lugar.giro")).append("|");
        }
        if (exp.getFechaGiro()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.fecha.giro")).append("|");
        }
        if (exp.getMoneda()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.moneda")).append("|");
        }
        if (exp.getMotivo()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.motivo")).append("|");
        }
        if (exp.getBanco()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.banco")).append("|");
        }
        if (exp.getOficina()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.oficina")).append("|");
        }
        if (exp.getNumeroCuenta()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.nro.cuenta")).append("|");
        }
        if (exp.getDc()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.dc")).append("|");
        }
        if (exp.getFiador()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.fiador")).append("|");
        }
        if (exp.getAvalFiador()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.aval.fiador")).append("|");
        }
        if (exp.getDomicilioFiador()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.domicilio.fiador")).append("|");
        }
        if (exp.getRepresentanteFiador()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.representante.fiador")).append("|");
        }
        if (exp.getTelefonoFiador()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.telefono.fiador")).append("|");
        }
        if (exp.getDoiFiador()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.doi.fiador")).append("|");
        }
        if (exp.getGirado()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.girado")).append("|");
        }
        if (exp.getDomicilioGirado()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.domicilio.girado")).append("|");
        }
        if (exp.getDoiGirado()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.doi.girado")).append("|");
        }
        if (exp.getTelefonoGirado()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.telefono.girado")).append("|");
        }
        if (exp.getPrecioBien()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.precio.bien")).append("|");
        }
        if (exp.getInicial()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.inicial")).append("|");
        }
        if (exp.getSaldoFinanciar()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.saldo.financiar")).append("|");
        }
        if (exp.getPeriodoGracia()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.periodo.gracia")).append("|");
        }
        if (exp.getNuevoSaldoFinanciar()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.nuevo.saldo.financiar")).append("|");
        }
        if (exp.getIntervaloDiasCuota()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.intervalo.cuota")).append("|");
        }
        if (exp.getTea()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.tea")).append("|");
        }
        if (exp.getTem()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.tem")).append("|");
        }
        if (exp.getTeEspecial()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.te.especial")).append("|");
        }
        if (exp.getNumeroPeriodosLetra()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.numero.periodos.letra")).append("|");
        }
        if (exp.getCuotaIgual()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.cuota.igual")).append("|");
        }
        if (exp.getTotalInteres()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.total.interes")).append("|");
        }
        if (exp.getImpuestoVenta()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.impuesto.venta")).append("|");
        }
        if (exp.getMontoImpuestoVenta()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.monto.impuesto.venta")).append("|");
        }
        if (exp.getPrintCuotasIguales()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.print.cuotas.iguales")).append("|");
        }
        if (exp.getEsAgenteRetencion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.es.agente.retencion")).append("|");
        }
        if (exp.getPorcentajeRetencion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.porcentaje.retencion")).append("|");
        }
        if (exp.getMontoRetencion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.monto.retencion")).append("|");
        }
        if (exp.getSaldoRetencion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.saldo.retencion")).append("|");
        }
        if (exp.getUsuarioCreacion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.usuario.creacion")).append("|");
        }
        if (exp.getFechaCreacion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.fecha.creacion")).append("|");
        }
        if (exp.getTerminalCreacion()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.terminal.creacion")).append("|");
        }
        if (exp.getComentario()) {
            strCabecera.append(UtilCore.Internacionalizacion.getMensajeInternacional("form.financiamiento.letra.comentario")).append("|");
        }
        return strCabecera;
    }

     /**
     * Metodo que indica que campos a exportar están seleccionados
     *
     * @since 09/01/2014
     * @param flag es el valor booleano
     * @return devuelve una clase tipo ExportarExcelFinanzas.FinanciamientoLetra
     * indicando que valores se exportarán
     */
    public ExportarExcelFinanzas.FinanciamientoLetra onChangeChekExcel(Boolean flag) {
        return new ExportarExcelFinanzas.FinanciamientoLetra(flag);
    }

   
    public String getUrl() {
        return url;
    }

    public String getUrlLista() {
        return urlLista;
    }

    public Long getIdEntidad() {
        return idEntidad;
    }

    public void setIdEntidad(Long idEntidad) {
        this.idEntidad = idEntidad;
    }
}
